TP12 - PowerShell
Théorie : Cours - PowerShell Bases · Cours - PowerShell Scripts AD · Cours - PowerShell Scripts Administration Captures :
99-Captures/TP12/· Prérequis : TP11-GPO
Objectif
Découvrir l'administration système avec PowerShell en automatisant plusieurs tâches courantes :
- obtenir des informations sur le système ;
- administrer Active Directory ;
- exporter des données ;
- créer des scripts réutilisables.
À l'issue de ce TP, vous disposerez d'une première boîte à outils PowerShell pour administrer votre laboratoire.
Prérequis
- [v] TP11-GPO validé
Étapes
1. Ouverture de PowerShell
Sur SRV-DC01, ouvrir PowerShell en tant qu'administrateur.
Vérifier la version installée :
$PSVersionTable.PSVersion
Version de PowerShell
2. Informations système
Afficher quelques informations sur le serveur :
Get-ComputerInfo |
Select-Object WindowsProductName, OsArchitecture, CsTotalPhysicalMemory
Afficher également :
Get-PSDrive -PSProvider FileSystem
Repérer :
- les lecteurs disponibles ;
- l'espace libre.
Informations système et lecteurs
3. Services Windows
Afficher les services démarrés :
Get-Service |
Where-Object {$_.Status -eq "Running"}
Puis les services arrêtés configurés en démarrage automatique :
Get-Service |
Where-Object {
$_.Status -eq "Stopped" -and
$_.StartType -eq "Automatic"
}
Services Windows
4. Import du module Active Directory
Charger le module :
Import-Module ActiveDirectory
Vérifier que le module est disponible :
Get-Module ActiveDirectory
Module Active Directory
5. Lister les utilisateurs
Afficher les utilisateurs du domaine :
Get-ADUser -Filter *
Afficher uniquement :
Get-ADUser -Filter * |
Select-Object Name, SamAccountName
Liste des utilisateurs
6. Exporter les utilisateurs
Exporter les utilisateurs dans un fichier CSV.
Créer le dossier :
C:\Exports
Puis exécuter :
Get-ADUser -Filter * -Properties DisplayName, EmailAddress |
Select-Object Name, DisplayName, EmailAddress |
Export-Csv C:\Exports\utilisateurs.csv -NoTypeInformation -Encoding UTF8
Ouvrir ensuite le fichier CSV afin de vérifier son contenu.
Export CSV
7. Créer un utilisateur avec PowerShell
Créer un nouvel utilisateur :
New-ADUser `
-Name "Marie Martin" `
-SamAccountName "mmartin" `
-UserPrincipalName "mmartin@lab.local" `
-Path "OU=Production,DC=lab,DC=local" `
-AccountPassword (ConvertTo-SecureString "MotDePasse123!" -AsPlainText -Force) `
-Enabled $true
Vérifier sa création :
Get-ADUser mmartin
Création d'un utilisateur
8. Ajouter un utilisateur à un groupe
Ajouter l'utilisateur au groupe Production :
Add-ADGroupMember `
-Identity "GRP-Production-RW" `
-Members "mmartin"
Vérifier les membres du groupe :
Get-ADGroupMember "GRP-Production-RW"
Ajout à un groupe
9. Comptes inactifs
Lister les comptes n'ayant pas ouvert de session depuis 90 jours :
$Date = (Get-Date).AddDays(-90)
Get-ADUser `
-Filter {LastLogonDate -lt $Date} `
-Properties LastLogonDate |
Select-Object Name, SamAccountName, LastLogonDate
Observer le résultat.
Comptes inactifs depuis 1 jour
10. Création d'un script
Créer le dossier :
C:\Scripts
Créer un fichier :
Inventaire.ps1
Y copier :
Get-ComputerInfo |
Select-Object WindowsProductName, OsArchitecture
Get-PSDrive -PSProvider FileSystem
Get-Service |
Where-Object {$_.Status -eq "Stopped" -and $_.StartType -eq "Automatic"}
Enregistrer puis exécuter le script :
.\Inventaire.ps1
Premier script PowerShell
Validation
- [v] PowerShell est fonctionnel
- [v] Les informations système sont affichées
- [v] Les services Windows sont listés
- [v] Le module Active Directory est chargé
- [v] Les utilisateurs sont exportés au format CSV
- [v] Un utilisateur est créé en PowerShell
- [v] L'utilisateur est ajouté à un groupe
- [v] Les comptes inactifs sont affichés
- [v] Un premier script PowerShell est créé
Progression
| Étape | Lien |
|---|---|
| Prérequis | TP11-GPO |
| Suite recommandée | → Cours - Sauvegardes |
| Branches | Cours - PowerShell Scripts AD |
| Théorie | Cours - PowerShell Bases · Cours - PowerShell Scripts AD · Cours - PowerShell Scripts Administration |
Suivi : Progression